//
//  CGQxiangmuChoiceListViewController.swift
//  SheYangBigData
//
//  Created by 叁拾叁 on 2021/4/7.
//  Copyright © 2021 叁拾叁. All rights reserved.
//


import UIKit
import MJRefresh
import RxSwift
import RxDataSources
import Then
import SDCycleScrollView

class CGQxiangmuChoiceListViewController: SYBaseTableViewController {
    
    fileprivate var vm: VGTableViewPageViewModel<CGQyuweiModel>!
    
    var params: [String: String]?
    var model: CGQxiangmulistModel!

    
    
//    var id: String!
//    var type: String!
//    
//    
//    init(id: String, type: String) {
//        super.init(nibName: nil, bundle: nil)
//        self.id = id
//        self.type = type
//        
//    }
//    
//    required init?(coder: NSCoder) {
//        fatalError("init(coder:) has not been implemented")
//    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        setTableView()
        setNoDataView()
//        setupViewModel()
        self.title = "项目列表"
//        setRightNavItem()
        loadData()
    }
    
    func setRightNavItem() {
        let item: UIBarButtonItem = UIBarButtonItem(title: "确认", style: UIBarButtonItem.Style.plain, target: self, action: #selector(rightAction))
        self.navigationItem.rightBarButtonItem=item
    }
    
    @objc func rightAction() {
        
    }
    
    func loadData() {

        requestVM.baseRequest(disposeBag: dispose, type: .xiangmuList(dic: self.params ?? [:], page: 1, size:10000), modelClass: SGBaseModel<CGQxiangmulistModel>.self) {[weak self] (res) in
            
            if let `self` = self  {
                self.model = res.data ?? CGQxiangmulistModel()
                self.loadDataSuccessed()
            }
            
        } Error: {
            
        }
    }
//    fileprivate func setupViewModel() {
//        vm = VGTableViewPageViewModel<CGQyuweiModel>()
//        vm.tableView = tableView
//        vm.emptyViewParams = ("", "", 40.0, 30.0)
//        tableView.vg_pageProtocol = vm
////        vm.getList(type: .nongchangList(page: vm.vg_pageNo, size:vm.size), dispose: dispose)
////        vm.getDataClosure = {[weak self] page in
////            if let `self` = self {
////                self.vm.getList(type: .nongchangList(page: self.vm.vg_pageNo, size:self.vm.size), dispose: self.dispose)
////            }
////        }
//        vm.loadDataClosure = {[weak self] success in
//            if let `self` = self {
//                if success {
//                    self.loadDataSuccessed()
//                }
//            }
//        }
//    }
    
    func loadDataSuccessed() {
        DispatchQueue.main.async {
            
            self.setDataSource()
        }
    }
    
    func setTableView() {
        
        //创建表格视图
        self.tableView = UITableView(frame: CGRect(x: 0, y: NAV_HEIGHT, width: SCREEN_WIDTH, height: SCREEN_HEIGHT-NAV_HEIGHT-BOTTOM_SAFE_HEIGHT), style:.plain)
        self.tableView.separatorStyle = .none
        self.tableView.backgroundColor = Constant.bgViewColor
        self.tableView!.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")
        self.view.addSubview(self.tableView!)
        
        tableView.rx.itemSelected
            .subscribe(onNext:{ [weak self] indexPath in
                if let `self` = self {
                   
                  

                    self.passParamsClosure?(self.model.appList?.records?[indexPath.row] as Any )
                    self.popVC()
                    
                }
            })
            .disposed(by:dispose)
    }
    
    func setNoDataView() {
        noDataView = SYNoDataView(frame: CGRect(x: 0, y: 0, width: SCREEN_WIDTH, height: SCREEN_HEIGHT-NAV_HEIGHT))
        noDataView.isHidden = true
        tableView.addSubview(noDataView)
    }
    
    func setDataSource() {
        //初始化数据
        let sections = Observable.just([
            NSRecordsModelSection(header: "", items: self.model.appList?.records ?? [])
        ])
        
        //创建数据源
        let dataSource = RxTableViewSectionedAnimatedDataSource<NSRecordsModelSection>(
            //设置单元格
            configureCell: { ds, tv, ip, item in
                
                let cell: CGQxiangmuchoiceCell = tv.dequeueReusableCell(withIdentifier: "Cell")
                    as? CGQxiangmuchoiceCell ?? CGQxiangmuchoiceCell(style: .default, reuseIdentifier: "Cell")
                cell.currentVC = self
                cell.configureView(model: item)
                cell.selectionStyle = .none
                return cell
                
            },
            //设置分区头标题
            titleForHeaderInSection: { ds, index in
                return ds.sectionModels[index].header
            })
        tableView.dataSource = nil
        //绑定单元格数据
        sections
            .bind(to: tableView.rx.items(dataSource: dataSource))
            .disposed(by: dispose)
        
    }
    
    
}
//CGQxiangmuchoiceCell

//自定义Section
//struct CGQyuweiModelSection {
//    var header: String
//    var items: [Item]
//}
//
//extension CGQyuweiModelSection : AnimatableSectionModelType {
//    typealias Item = CGQyuweiModel
//
//    var identity: String {
//        return header
//    }
//
//    init(original: CGQyuweiModelSection, items: [Item]) {
//        self = original
//        self.items = items
//    }
//}
//
//extension CGQyuweiModel: IdentifiableType {
//    var identity: String {
//        return id!
//    }
//
//    typealias Identity = String
//}

